# AVL树 也称平衡二叉树 balanced binary tree
# 1.本身首先是一棵二叉搜索树。
# 2.带有平衡条件：每个结点的左右子树的高度之差的绝对值（平衡因子）最多为1。
# 平衡因子(BF,Balance Factor)
# 某节点的左子树与右子树的高度(深度)差即为该节点的平衡因子 平衡二叉树中不存在平衡因子绝对值大于1的节点。在一棵平衡二叉树中，节点的平衡因子只能取 0 、1 或者 -1 ，分别对应着左右子树等高，左子树比较高，右子树比较高。
# AVL树插入
# 1.插入一个节点可能会破坏AVL树的平衡，可以通过旋转操作来进行修正
# 2.插入一个节点后，只有从插入节点到根节点的路径上的节点的平衡可能被改变。我们需要找出第一个破坏了平衡条件的节点，称为K。K的两颗子树的高度差2
# 3.不平衡的情况可能有四种
# 左旋：不平衡是由于对K的右孩子的左子树插入导致的
# 右旋：不平衡是由于对K的左孩子的左子树插入导致的
# 右旋-左旋：不平衡是由于对K的右孩子的左子树插入导致的
# 左旋-右旋：不平衡是由于对K的左孩子得到右子树插入导致的
